#pragma once

#include <iostream>
#include <string>

namespace protocol_ns
{
    //我们的协议：
    //接收消息的时候，还要解决一个问题，保证我们拿到的是一个完整的请求
    //  报文=报头+有效载荷
    //  "有效载荷的长度"\r\n"有效载荷"\r\n
    //  "len"\r\n"_x _op _y"\r\n  -> len:只表示有效载荷的长度\r\n分隔符不参与统计

    // 这两个就是结构化数据，不能直接向网络发送
    class Reqeust
    {
    public:
        Reqeust()
        {
        }
        Reqeust(int x, int y, char oper)
            : _x(x), _y(y), _oper(oper)
        {
        }
        bool Serialize(const std::string *out)//序列---多转一
        {

        }
        bool DeSerialize(const std::string &in)//反序列化---一转多
        {

        }
    private:
        int _x;
        int _y;
        char _oper; // oper只能是"+-*/%"  _x _oper _y
    };//---字符串

    class Response
    {
    public:
        Response()
        {
        }
        Response(int result, int code)
            : _result(result), _code(code)
        {
        }

    private:
        int _result; // 结果
        int _code;   // 0：表示成功 1：表示除0错误 2：表示非法操作
    };//---字符串
}
